//package xing.design.pattern.behavioral.Memento.sample3_andCommandPattern.editor.command2;
//
//import xing.design.pattern.behavioral.Memento.sample3_andCommandPattern.editor.Editor;
//import xing.design.pattern.behavioral.Memento.sample3_andCommandPattern.editor.History;
//
///**
// * Command2
// * <p>
// * 不必再使用 setEditor() 这种难以得知的行为。而是对 execute() 显示表示。
// * <p>
// * 此时，不再需要像 Command 那样，担心其 execute() 命令在没有 setEditor() 时被错误调用。而不是执行 Editor.execute() 方法。两种方法都可以使用。
// *
// * @author xing
// * @date 2023/2/10 17:55:20
// */
//@Deprecated
//public abstract class Command2 {
//
//    /**
//     * 被外部调用的方法，在此之前需要调用 setEditor 设置了 Editor （这点我在 Editor 类调用 execute() 里做了设置）
//     */
//
//    public void execute(Editor editor) {
//        // assert editor != null;
//        doExecute(editor);
//        updateHistory(editor);
//    }
//
//    /**
//     * 实际要重写的执行方法
//     */
//    protected abstract void doExecute(Editor editor);
//
//    public abstract String getName();
//
//    protected void updateHistory(Editor editor) {
//        History history = editor.getHistory();
//        history.undoPush(new CommandAdapter(this), editor.createMemento());
//    }
//}
